
Page({
  /**
   * 页面的初始数据
   */
  data: {
    listData:[
       
      ],
      showModalStatus: false,
      searchText:"",
      form:{
        cardcode:"",
        cardtype:"",
        thcode:"",
        _id:""
      },
      title:"",
      option:"" ,  //标记是新增还是编辑操作
       //普通选择器2：（普通json格式数组）
      objectArray: [
        {
          id: 0,
          code:'A',
          name: '888大闸蟹'
        },
        {
          id: 1,
          code:'B',
          name: '1288大闸蟹'
        },
        {
          id: 2,
          code:'C',
          name: '1688大闸蟹'
        }
      ],
      index:0,
      pageIndex:0,//分页参数，代表第几页，从0开始算第一页
      totalpage:0,
    },

    handleInput(e){
      this.data.searchText = e.detail.value
    },
    doSearch(){
        if(this.data.searchText.trim() == "") {
          this.getData(this.data.pageIndex);
          return;
        }
        this.getSearchData(this.data.pageIndex, this.data.searchText.trim());
    },
     //普通选择器2：
    bindPickerChange: function (e) {
      // console.log('picker发送选择改变，携带值为', e.detail.value);
      this.setData({
        index: e.detail.value
      })
    },
    formSubmit(e){
      console.log('form发生了submit事件，携带数据为：', e.detail.value);
      if(this.data.option == "add"){
        this.saveDataToServer(e.detail.value)
      }else{
        this.updateDataToServer(e.detail.value)
      }
      
    },
 

    powerDrawer: function (e) {  
      var currentStatu = e.currentTarget.dataset.statu;  
      var option = e.currentTarget.dataset.option;  
      var item = e.currentTarget.dataset.item;
      //如果item不为null代表编辑，反之为新增
      if(option != null){
        this.setData({
          "option":option,
        }) 
      }
      if(option=="edit"){
        var _index= this.data.objectArray.filter(function(it){
              return it.code == item.cardtype; 
        })
        this.setData({
          "title":"编辑",
          "form.cardcode":item.cardcode,
          "form.cardtype":item.cardtype,
          "form.thcode":item.thcode,
          "index":_index[0].id,
          "form._id":item._id
        })
       
      }else{
        this.setData({
          "title":"新增",
          "form":{
            thcode:"",
            cardcode:"",
            cardtype:""
          },
          "index":0
        })
      }

      this.util(currentStatu)  
    
    },  
    util: function(currentStatu){  
      /* 动画部分 */  
      // 第1步：创建动画实例   
      var animation = wx.createAnimation({  
        duration: 200,  //动画时长  
        timingFunction: "linear", //线性  
        delay: 0  //0则不延迟  
      });  
        
      // 第2步：这个动画实例赋给当前的动画实例  
      this.animation = animation;  
    
      // 第3步：执行第一组动画  
      animation.opacity(0).rotateX(-100).step();  
    
      // 第4步：导出动画对象赋给数据对象储存  
      this.setData({  
        animationData: animation.export()  
      })  
        
      // 第5步：设置定时器到指定时候后，执行第二组动画  
      setTimeout(function () {  
        // 执行第二组动画  
        animation.opacity(1).rotateX(0).step();  
        // 给数据对象储存的第一组动画，更替为执行完第二组动画的动画对象  
        this.setData({  
          animationData: animation  
        })  
          
        //关闭  
        if (currentStatu == "close") {  
          this.setData(  
            {  
              showModalStatus: false  
            }  
          );  
        }  
      }.bind(this), 200)  
      
      // 显示  
      if (currentStatu == "open") {  
        this.setData(  
          {  
            showModalStatus: true  
          }  
        );  
      }  
    },
    /**
    * 保存到发布集合中
    */
  saveDataToServer: function(data) {
    // console.log("add-data-------")
    var that = this;

    var card= that.data.objectArray.filter(function(it){
      return it.id == data.index; 
    })
    // console.log(card)

    const db = wx.cloud.database();
    const topic = db.collection('th_cards')
    db.collection('th_cards').add({
      // data 字段表示需新增的 JSON 数据
      data: {
        addtime: new Date(),
        cardcode: data.cardcode,
        cardtype: card[0].code,
        status: 1,
        thcode: data.thcode,
        tip: "",
        type: 0
      },
      success: function(res) {
        // res 是一个对象，其中有 _id 字段标记刚创建的记录的 id
        // 清空，然后重定向到首页
        console.log("success---->" + res)
        that.setData({
          "title":"新增",
          "form":{
            thcode:"",
            cardcode:"",
            cardtype:""
          },
          "index":0
        })
      },
      complete: function(res) { 
        console.log("complete---->" + res)
        that.getData(that.data.pageIndex)
      }
    })
  },
      /**
    * 更新
    */
   updateDataToServer: function(data) {
    console.log("update-data-------")
    var that = this;

    var card= that.data.objectArray.filter(function(it){
      return it.id == data.index; 
    })

    wx.cloud.callFunction({
      name: 'updateCard',
      data: {
        _id: this.data.form._id,
        card:card,
        data:data
      }
      }).then(res => {
      console.log("update--success")
      this.getData(this.data.pageIndex)
    })
  },
  delete(e){
    var that = this;
    var item = e.currentTarget.dataset.item;
    wx.showModal({
      title: '删除提示',
      confirmText: '确定',
      cancelText: '取消',
      content: '确定要删除吗？',

      success: function (res) {
        if (res.confirm) {
              console.log("delete")
             
              const db = wx.cloud.database();
              wx.cloud.callFunction({
                name: 'deleteCard',
                data: {
                  _id: item._id
                }
                }).then(res => {
                console.log("delete--success")
                that.getData(that.data.pageIndex)
              })
        }
      }
    })
  },
  //分页方法
  newpage(e){
    // console.log("点击触发")
    var p = e.currentTarget.dataset.page; 
    var newpage = this.data.pageIndex + parseInt(p)
    if(newpage + 1 > this.data.totalpage) {
        wx.showToast({
          title: '已经是最后一页啦',
          icon: 'none',
          duration: 2000,
          mask: true
      })
      return;
    }
    // add by zhangwei 搜索分页
    if(newpage >= 0 && this.data.searchText.trim() != "") {
      this.getSearchData(newpage, this.data.searchText.trim());
      this.setData({
        "pageIndex":newpage
      })
      return;
    }
    if(newpage >= 0){
      const db = wx.cloud.database();
      db.collection('th_cards').skip(newpage*10).limit(10).get().then(res => {//formData是数据库里面集合的名称
        if(res.data.length > 0){
          this.getData(newpage)
          this.setData({
            "pageIndex":newpage
          })
        }
      })
     
    }
  },
  getData(pageIndex){
    const db = wx.cloud.database();
    db.collection('th_cards').skip(pageIndex*10).limit(10).get().then(res => {//formData是数据库里面集合的名称
      
      this.setData({
        th_cards: res.data
      });
      this.setData({
        listData: res.data
      });

      // console.log(this.data.listData)
    }).catch(err => {
      console.log(err); //如果更新数据失败则输出失败信息
    })
    db.collection("th_cards").count().then(res => {
      this.setData({
        totalpage: Math.ceil(res.total / 10)
      });
      
  });
  },
  getSearchData(pageIndex, cardNo) {
    const db = wx.cloud.database();
    db.collection('th_cards').where({
      cardcode: db.RegExp({
        regexp: cardNo
      })
    }).skip(pageIndex*10).limit(10).get().then(res => {//formData是数据库里面集合的名称
      this.setData({
        th_cards: res.data
      });
      this.setData({
        listData: res.data
      });
    })

    db.collection('th_cards').where({
      cardcode: db.RegExp({
        regexp: cardNo
      })
    }).count().then(res => {//formData是数据库里面集合的名称
      this.setData({
        totalpage: Math.ceil(res.total / 10)
      });
    })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.getData(this.data.pageIndex);
    
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})